#ifndef __ming_fyp_core_MatrixUtil_h__
#define __ming_fyp_core_MatrixUtil_h__

//------------------------------------------------------------------------------
// header includes
#include "fyp/core/Vec.h"
#include "fyp/core/Matrix.h"

//------------------------------------------------------------------------------
namespace ming
{
namespace fyp
{
namespace core
{
	//--------------------------------------------------------------------------
	TMtx44 mtxLookAtLH(const TVec3 &eye, const TVec3 &target, const TVec3 &upDir);

	TMtx44 mtxPerspectiveLH(float w, float h, float zNear, float zFar);

	TMtx44 mtxPerspectiveFovLH(float fovy, float aspectRatio, float zNear, float zFar);

	TMtx44 mtxRotateX(float angle);

	TMtx44 mtxRotateY(float angle);

	TMtx44 mtxRotateZ(float angle);

	TMtx44 mtxTranslate(const TVec3 &trans);

	TMtx44 mtxTranslate(float tx, float ty, float tz);

	TMtx44 mtxScale(const TVec3 &scale);

	//--------------------------------------------------------------------------
}
}
}

using namespace ming::fyp::core;


#endif	//__ming_fyp_core_MatrixUtil_h__